package cn.iocoder.yudao.module.ai.service.creationwork;

import java.util.*;
import jakarta.validation.*;
import cn.iocoder.yudao.module.ai.controller.admin.creationwork.vo.*;
import cn.iocoder.yudao.module.ai.dal.dataobject.creationwork.CreationWorkDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;

/**
 * AI 创作作品 Service 接口
 *
 * @author zhaokang
 */
public interface CreationWorkService {

    /**
     * 创建AI 创作作品
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createCreationWork(@Valid CreationWorkSaveReqVO createReqVO);

    /**
     * 更新AI 创作作品
     *
     * @param updateReqVO 更新信息
     */
    void updateCreationWork(@Valid CreationWorkSaveReqVO updateReqVO);

    /**
     * 删除AI 创作作品
     *
     * @param id 编号
     */
    void deleteCreationWork(Long id);

    /**
     * 获得AI 创作作品
     *
     * @param id 编号
     * @return AI 创作作品
     */
    CreationWorkDO getCreationWork(Long id);

    /**
     * 获得AI 创作作品分页
     *
     * @param pageReqVO 分页查询
     * @return AI 创作作品分页
     */
    PageResult<CreationWorkDO> getCreationWorkPage(CreationWorkPageReqVO pageReqVO);

}